Dynamic auto-advance feature for refreshable braille displays

ABSTRACT

A method of dynamically establishing an auto-advance interval of a refreshable braille display. The method involves the step of establishing a default auto-advance value, during which a full line of braille characters remains displayed on the braille display prior to being replaced by the next line. The method further involves determining whether a current line of braille characters ends with a blank cell or a used cell and calculating the current auto-advance interval based on the number of used cells in the current line. The next line of braille characters is output after the current auto-advance interval has lapsed.

CROSS REFERENCE TO RELATED APPLICATION

This application claims priority to currently U.S. Provisional PatentApplication Ser. No. 62/382,509 filed Sep. 1, 2016 entitled “DynamicAuto Advance,” the contents of which are herein incorporated byreference.

BACKGROUND OF THE INVENTION

Field of the Invention

This invention relates to refreshable braille displays. Morespecifically, it relates to dynamically establishing an auto-advanceinterval for each line of braille characters based on the number of usedbraille cells in that line.

Background of the Invention

Refreshable braille readers enable blind and visually-impaired users toread electronic documents using the braille language. The refreshablebraille displays contain a number of braille cells, each of which can beused to output a braille character corresponding to an alphanumericalcharacter. A screen reader software, such as JAWS®, is used to outputalphanumeric characters within an electronic document onto the brailledisplay. After a line of text is output onto the braille display, theuser reads the output using his or her fingertips. When the user is donereading the current line of the braille display, the user presses a keyto refresh the braille display with a next line of braille characters.

In the past, braille display users had to manually press a button afterreading each line of braille characters to output the next line.Although this task may seem insignificant, it constitutes a majorinconvenience to the braille display users often interrupting the flowof the content and reducing the reading speed. To remedy this issue,JAWS® screen reader currently has a braille reading mode calledauto-advance. Auto-advance automatically refreshes the braille displayat preset intervals, thereby enabling continuous reading.

One problem with the current auto-advance feature is that the brailledisplay is refreshed in fixed time intervals without accounting for theblank cells. Electronic documents often contain lines with only a fewwords, much shorter than larger braille displays. When these short linesare output onto the braille display, a plurality of braille cells mayremain blank. The blank cells may also be a result of the need to wrapwords which might be broken across a braille display boundary. When thisoccurs, the line is shorter than the full width of the braille display.Since the fixed auto-advance interval is set by the user for optimalreading when the braille display is full, the user may be left waitingfor the remainder of the auto-advance interval after completing readinga shorter line. This waiting period undermines the efficacy of theauto-advance feature.

Some braille displays address the problem described above by providingsensors that track the movement of the user's finger across the brailledisplay, and automatically refresh the braille display when the userfinishes reading the last braille cell. This solution requiresadditional hardware to be deployed within the braille display, therebymaking this solution incompatible with standard braille displays thatare not equipped with such sensors. Inclusion of additional sensors intothe braille display also increases the cost, power consumption,complexity, and makes the braille display more prone to malfunctioning.

Accordingly, what is needed is a software-based solution that woulddynamically determine the appropriate auto-advance interval on aline-by-line basis.

SUMMARY OF THE INVENTION

The long-standing but heretofore unfulfilled need for a software-basedsolution for dynamically determining the appropriate auto-advanceinterval for a braille display on a line-by-line basis is now met by anew, useful, and nonobvious invention.

The invention pertains to a method of dynamically advancing arefreshable braille display. The braille display is in communicationwith a non-transitory tangible computer-readable medium havingcomputer-executable instructions for outputting an electronic document.A default auto-update interval for the braille display is preset. Thedefault auto-update interval may be adjusted by the user based on user'sreading ability and preferences. The default auto-update interval is theduration during which a full line of braille characters remainsdisplayed prior to being replaced by the next line of braillecharacters.

A portion of the electronic document is output onto the braille displayas a current line of braille characters. Some lines of braillecharacters are full, meaning that all cells of the braille display aredisplaying either braille characters or spaces between them. For thefull line of text, the default auto-advance interval is used. In someinstances, the braille display outputs a short line of braillecharacters. A short line is the one that ends with one or more blankbraille cells. Users will generally require less time to read a shortline than a long line.

The invention performs a check to determine whether the current lineends with a blank braille cell, which would correspond to a short line.Responsive to determining that the current line ends with the blankbraille cell, the last used braille cell in the current line isidentified. Every cell to the left of the cell displaying a braillecharacter is considered a used cell. A ratio of a number of used cellsto a total number of cells within the braille display is calculated. Thedefault auto-advance interval is then multiplied by this ratio to obtaina current auto-advance interval for the current line. The next line ofbraille characters is output after the current auto-advance interval haslapsed.

In an embodiment, a minimum auto-advance interval may be preset. If thecurrent auto-advance interval is greater than zero but less than theminimum auto-advance interval, then the next line of braille characterswill be displayed after the minimum auto-advance interval has lapsed.The user can adjust the minimum auto-advance interval per his or herpreferences. If the current auto-advance interval is equal to zero, dueto the Braille display being completely blank, the current line ofbraille characters is skipped and the next line of braille characters isdisplayed.

BRIEF DESCRIPTION OF THE DRAWINGS

For a fuller understanding of the invention, reference should be made tothe following detailed description, taken in connection with theaccompanying drawings, in which:

FIG. 1 is a conceptual view depicting a refreshable braille display incommunication with a computing device displaying an electronic document;

FIG. 2A is a conceptual view depicting the braille display outputting afull line of text;

FIG. 2B is a conceptual view depicting the braille display outputting ashort line of text;

FIG. 3 is a flowchart depicting the steps of the method of updating thebraille display with a next line of braille characters according to thepresent invention.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT

The invention pertains to method of automatically detecting the lengthof the line output by the braille display and dynamically adjusting therefresh interval based on the length of each line. FIG. 1 depicts acomputing device 10 having a non-transitory tangible medium displayingan electronic document 12. Electronic document 12 has a number of linesof alphanumerical characters. Braille display 14 communicates withcomputing device 10. Braille display 14 contains a plurality of braillecells 16, each comprising a set of eight pins. Each braille cell 16 canbe used to output a braille character corresponding to an alphanumericalcharacter within electronic document 12.

Electronic document 12 contains several lines of text having only a fewwords. These lines contain less alphanumerical characters than the totalnumber of braille cells 16 in with braille display 14. When these shortlines of text are output onto braille display 16, one or more of braillecells 16 will remain blank. Blank cells may also appear due to the needto wrap words which might be broken across a braille display boundary.

FIG. 2A depicts braille display 14 outputting a full line of braillecharacters 18, while FIG. 2B depicts braille display 14 outputting ashort line 20. FIG. 2B depicts that within short line 20, to the rightof the used cells 22, there is a plurality of blank cells 24. Becauseblank cells 24 do not contain any braille characters, the user willgenerally need less time to read short lines 20 than full lines 18.Blank cells 24 that are located to the left of a used cell 22 are alsoconsidered used cells 22 because the user must scan these cells in orderto read the current line up to the non-empty cells output by brailledisplay 14.

FIG. 3 depicts a flow chart illustrating the dynamic auto-advancefeature according to an embodiment of the invention. In step 30, adefault auto-advance interval is established. This interval correspondsto the amount of time the user generally requires to read a full line ofbraille characters 18. In step 32, text is output onto braille display14. In step 34, the method determines whether the line ends with a blankcell 24, which would correspond to a short line 20, or a used cell 22,which would correspond to a full line 18. If, in step 34, it isdetermined that the current line of braille display 14 ends with a usedcell 22, then the default auto-advance interval is used to output thenext line of text in step 35.

If, however, in step 34, it is determined that the braille display 14ends with a blank cell 24, the method proceeds to step 36. In step 36, aratio of the number of used cells 22 to the number of total cells iscalculated. In step 38, the default auto-advance interval is multipliedby this ratio to obtain a current auto-advance interval. In step 40, thecurrent auto-advance interval is compared against a predefined minimumauto-advance interval. The predefined minimum auto-advance interval isthe minimum duration required for comprehension by the majority ofbraille readers. In one embodiment, the minimum auto-advance intervalmay be set to 1000 milliseconds. The user can change the minimumauto-advance interval to correspond to his or her braille readingability and preferences. If, in step 40, it is determined that thecurrent auto-advance interval exceeds the predefined minimumauto-advance interval, then the current auto-advance interval is used tooutput the next line of text in step 42. Otherwise, the system uses theminimum auto-advance interval to output the next line of text in step44.

The method described above also accounts for those instances when thebraille display 14 outputs a completely blank line. In that case, theline will end with a blank cell 24 and will have zero used cells 22.Consequently, the ratio calculated in step 36 will be equal to zero.Thus, the current auto-advance interval will also be equal to zerobecause it is a product of this ratio and the default auto-advanceinterval. The auto-advance interval of zero will cause the brailledisplay to skip the blank line and output the next line of text.Accordingly, the method illustrated in FIG. 3 accounts for blank linesand automatically skips them.

Hardware and Software Infrastructure Examples

The present invention may be embodied on various computing platformsthat perform actions responsive to software-based instructions and mostparticularly for low-vision user software. These include bothtraditional desktop and notebooks devices and also smartphones andtablets. Furthermore, the computing device may reside within the brailledisplay, thus making the braille display a standalone reader forelectronic documents. The following provides an antecedent basis for theinformation technology that may be utilized to enable the invention.

The computer readable medium described in the claims below may be acomputer readable signal medium or a computer readable storage medium. Acomputer readable storage medium may be, for example, but not limitedto, an electronic, magnetic, optical, electromagnetic, infrared, orsemiconductor system, apparatus, or device, or any suitable combinationof the foregoing. More specific examples (a non-exhaustive list) of thecomputer readable storage medium would include the following: anelectrical connection having one or more wires, a portable computerdiskette, a hard disk, a random access memory (RAM), a read-only memory(ROM), an erasable programmable read-only memory (EPROM or Flashmemory), an optical fiber, a portable compact disc read-only memory(CD-ROM), an optical storage device, a magnetic storage device, or anysuitable combination of the foregoing. In the context of this document,a computer readable storage medium may be any non-transitory, tangiblemedium that can contain, or store a program for use by or in connectionwith an instruction execution system, apparatus, or device.

A computer readable signal medium may include a propagated data signalwith computer readable program code embodied therein, for example, inbaseband or as part of a carrier wave. Such a propagated signal may takeany of a variety of forms, including, but not limited to,electro-magnetic, optical, or any suitable combination thereof. Acomputer readable signal medium may be any computer readable medium thatis not a computer readable storage medium and that can communicate,propagate, or transport a program for use by or in connection with aninstruction execution system, apparatus, or device. However, asindicated above, due to certain statutory subject matter restrictions,claims to this invention as a software product are those embodied in anon-transitory software medium such as a computer hard drive, flash-RAM,optical disk or the like.

Program code embodied on a computer readable medium may be transmittedusing any appropriate medium, including but not limited to wireless,wire-line, optical fiber cable, radio frequency, etc., or any suitablecombination of the foregoing. Computer program code for carrying outoperations for aspects of the present invention may be written in anycombination of one or more programming languages, including an objectoriented programming language such as Java, C#, C++, Visual Basic,Objective C, Python or the like and conventional procedural programminglanguages, such as the “C” programming language or similar programminglanguages.

Aspects of the present invention are described below with reference toflowchart illustrations and/or block diagrams of methods, apparatus(systems) and computer program products according to embodiments of theinvention. It will be understood that each block of the flowchartillustrations and/or block diagrams, and combinations of blocks in theflowchart illustrations and/or block diagrams, can be implemented bycomputer program instructions. These computer program instructions maybe provided to a processor of a general purpose computer, specialpurpose computer, or other programmable data processing apparatus toproduce a machine, such that the instructions, which execute via theprocessor of the computer or other programmable data processingapparatus, create means for implementing the functions/acts specified inthe flowchart and/or block diagram block or blocks.

These computer program instructions may also be stored in a computerreadable medium that can direct a computer, other programmable dataprocessing apparatus, or other devices to function in a particularmanner, such that the instructions stored in the computer readablemedium produce an article of manufacture including instructions whichimplement the function/act specified in the flowchart and/or blockdiagram block or blocks.

The computer program instructions may also be loaded onto a computer,other programmable data processing apparatus, or other devices to causea series of operational steps to be performed on the computer, otherprogrammable apparatus or other devices to produce a computerimplemented process such that the instructions which execute on thecomputer or other programmable apparatus provide processes forimplementing the functions/acts specified in the flowchart and/or blockdiagram block or blocks.

It should be noted that when referenced, an “end-user” is an operator ofthe software as opposed to a developer or author who modifies theunderlying source code of the software. For security purposes,authentication means identifying the particular user while authorizationdefines what procedures and functions that user is permitted to execute.

GLOSSARY OF CLAIM TERMS

Blank cell—a braille cell that is not displaying a braille character andthat does not have any cells displaying a braille character to itsright.

Braille display—an electro-mechanical device for displaying braillecharacters, usually by means of pins raised through holes. The pins aregrouped into braille cells, wherein each cell can display a singlealphanumerical character.

Current auto-advance interval—a time interval calculated for each shortline of braille characters during which the corresponding line remainsdisplayed on the braille display prior to being replaced by the nextline of braille characters. The duration of the current auto-advancedinterval is based on a number of used cells in the current line ofbraille characters.

Default auto-advance interval—a predefined time interval during which afull line of braille characters remains displayed on the braille displayprior to being replaced by the next line of braille characters. This isthe default time period for updating the braille display under theauto-advance function.

Line of braille characters—a plurality of braille cells displaying aplurality of braille characters corresponding to alphanumericalcharacters within an electronic document.

Minimum auto-advance interval—a minimum predefined time period duringwhich a short line of braille characters remains displayed on thebraille display prior to being replaced by the next line of braillecharacters.

Used cell—a braille cell displaying a braille character or any cell tothe left of a cell displaying a braille character. The user scans theused cells to read the output of the braille display.

The advantages set forth above, and those made apparent from theforegoing description, are efficiently attained. Since certain changesmay be made in the above construction without departing from the scopeof the invention, it is intended that all matters contained in theforegoing description or shown in the accompanying drawings shall beinterpreted as illustrative and not in a limiting sense.

What is claimed is:
 1. A method of dynamically advancing a refreshablebraille display, the method comprising the steps of: providing a brailledisplay in communication with a non-transitory tangiblecomputer-readable medium having computer-executable instructions foroutputting an electronic document; setting a default auto-updateinterval for the braille display; outputting a portion of the electronicdocument onto the braille display as a current line of braillecharacters; determining whether the current line ends with a blankbraille cell; responsive to determining that the current line ends withthe blank braille cell, calculating a current auto-advance interval forthe current line as a function of a number of used cells within thecurrent line and the default auto-update interval; and automaticallyoutputting a next line of braille characters after the currentauto-advance interval has lapsed.
 2. The method of claim 1, furthercomprising the steps of: establishing a minimum auto-advance interval;comparing the current auto-advance interval against the minimumauto-advance interval; and responsive to the current auto-advanceinterval being greater than zero but less than the minimum auto-advanceinterval, outputting the next line of braille characters after theminimum auto-advance interval has lapsed.
 3. The method of claim 1,wherein responsive to the current auto-advance interval being equal tozero, skipping the current line and outputting the next line of braillecharacters.
 4. The method of claim 1, further comprising the step ofresponsive to a determination that the current line ends with a usedcell, outputting the next line after the default auto-advance intervalhas lapsed.
 5. The method of claim 1, wherein the default auto-advanceinterval is user-adjustable.
 6. One or more non-transitory tangiblecomputer-readable media having computer-executable instructions foroutputting alphanumerical characters onto a refreshable braille display,the instructions comprising: accessing an electronic document; setting adefault auto-update interval for the braille display; outputting aportion of the electronic document onto the braille display as a currentline of braille characters; determining whether the current line endswith a blank braille cell; responsive to determining that the currentline ends with the blank braille cell, calculating a currentauto-advance interval for the current line as a function of a number ofused cells within the current line and the default auto-update interval;and automatically outputting a next line of braille characters after thecurrent auto-advance interval has lapsed.
 7. The media of claim 6,wherein calculating the current auto-advance interval comprises thesteps of: identifying a last used braille cell in the current line;calculating a ratio of a number of cells preceding and including thelast used cell to a total number of cells within the braille display;and multiplying the ratio by the default auto-advance interval to obtainthe current auto-advance interval for the current line.
 8. The media ofclaim 7, further comprising the steps of: establishing a minimumauto-advance interval; comparing the current auto-advance intervalagainst the minimum auto-advance interval; and responsive to the currentauto-advance interval being greater than zero but less than the minimumauto-advance interval, outputting the next line of braille charactersafter the minimum auto-advance interval has lapsed.
 9. The media ofclaim 6, wherein responsive to the current auto-advance interval beingequal to zero, skipping the current line and outputting the next line ofbraille characters.
 10. The media of claim 6, further comprising thestep of responsive to a determination that the current line ends with aused cell, outputting the next line after the default auto-advanceinterval has lapsed.
 11. The media of claim 6, wherein the defaultauto-advance interval is user-adjustable.
 12. A method of dynamicallyadvancing a refreshable braille display, the method comprising the stepsof: providing a braille display in communication with a non-transitorytangible computer-readable medium having computer-executableinstructions for outputting an electronic document; setting a defaultauto-update interval for the braille display; outputting a portion ofthe electronic document onto the braille display as a current line ofbraille characters; determining whether the current line ends with ablank braille cell; responsive to determining that the current line endswith the blank braille cell, identifying a last used braille cell in thecurrent line; calculating a ratio of a number of cells preceding andincluding the last used cell to a total number of cells within thebraille display; multiplying the default auto-advance interval by theratio to obtain a current auto-advance interval for the current line;and automatically outputting a next line of braille characters after thecurrent auto-advance interval has lapsed.
 13. The method of claim 12,further comprising the steps of: establishing a minimum auto-advanceinterval; comparing the current auto-advance interval against theminimum auto-advance interval; and responsive to the currentauto-advance interval being greater than zero but less than the minimumauto-advance interval, outputting the next line of braille charactersafter the minimum auto-advance interval has lapsed.
 14. The method ofclaim 12, wherein responsive to the current auto-advance interval beingequal to zero, skipping the current line and outputting the next line ofbraille characters.
 15. The method of claim 12, further comprising thestep of responsive to a determination that the current line ends with aused cell, outputting the next line after the default auto-advanceinterval has lapsed.
 16. The method of claim 12, wherein the defaultauto-advance interval is user-adjustable.